// 用户先登录，登录成功之后拿到token，然后再保存token到本地
import 'dart:io';

void main() {
  print('开始执行main函数');
  // // 登录
  // String token = login();
  // print('登录结果-token 的值为:$token');
  // // 保存 token
  // String setRes = setToken(token);
  // print('token 保存结果-:$setRes');

  login().then((loginRes) {
    // print('登录结果为:$loginRes');
    return setToken(loginRes);
  }).then((tokenRes) {
    print('token 保存结果为:$tokenRes');
  });

  print('这是不能被阻塞的代码');
}

// 1. 模拟耗时的登录操作
Future<String> login() {
  return Future(() {
    print('开始登录~~~');
    sleep(Duration(seconds: 3));
    print('假装登录成功~~~');
    String token = 'Login-token';
    return token;
  });
}

// 2. 模拟耗时的本地存储操作
Future<String> setToken(String token) {
  return Future(() {
    print('开始保存 token~~~');
    sleep(Duration(seconds: 3));
    print('token 保存成功~~~');
    return 'ok';
  });
}
